package fr.generali.accueilclient.gwt.showcase.client.form;

import java.util.ArrayList;
import java.util.List;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;

import fr.generali.accueilclient.gwt.client.ui.components.form.ListBox;
import fr.generali.accueilclient.gwt.showcase.client.ADummyObject;

public class ListBoxDemo extends Composite {

    private static ListBoxDemoUiBinder uiBinder = GWT.create(ListBoxDemoUiBinder.class);

    interface ListBoxDemoUiBinder extends UiBinder<Widget, ListBoxDemo> {
    }

    @UiField
    ListBox<ADummyObject> listBox;
    
    @UiField
    ListBox<ADummyObject> multiListBox;
    
    @UiField
    ListBox<ADummyObject> multiSelectListBox;

    public ListBoxDemo() {
        initWidget(uiBinder.createAndBindUi(this));
        initValues();
    }

    @UiHandler("listBox")
    void handleValueChange(ChangeEvent event) {
        Window.alert(listBox.getSelectedValue() + "");
    }

    private void initValues() {
        List<ADummyObject> values = new ArrayList<ADummyObject>();
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 42", 42));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 3", 3));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 28", 28));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 74", 74));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 12", 12));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 1", 1));
        values.add(new ADummyObject("L'intitulé de l'objet dont la valeur est 37", 37));

        for (ADummyObject aDummyObject : values) {
            listBox.addItemValue(aDummyObject.getaName(), aDummyObject);
            multiListBox.addItemValue(aDummyObject.getaName(), aDummyObject);
            multiSelectListBox.addItemValue(aDummyObject.getaName(), aDummyObject);
        }
    }

}
